//配置路由的地方
import Vue from "vue";
import VueRouter from "vue-router";
//使用插件
Vue.use(VueRouter);

import routes from "./routes";

//备份一份VueRouter原型的push
let originPush = VueRouter.prototype.push;

//重写push、replace
//第一个参数：location:告诉原来push的方法，你往哪里跳转（传递那些参数）
//第二个参数：resolve：成功的回调
//第三个参数：reject：失败的回调
    VueRouter.prototype.push = function(location,resolve,reject){
        if(resolve && reject){
            //call与apply异同：
            //相同点：都可以调用函数一次，都可以篡改上下文一次
            //不同点：call与apply传递参数：call传递参数用逗号隔开，apply方法执行，传递数组
            originPush.call(this,location,resolve,reject)
        }else{
            originPush.call(this,location,()=>{},()=>{})
        }
    }
    VueRouter.prototype.replace = function(location,resolve,reject){
        if(resolve && reject){
            originReplace.call(this,location,resolve,reject)
        }else{
            originReplace.call(this,location,()=>{},()=>{})
        }
    }

//配置路由
export default new VueRouter({
    //配置路由
    //由于KV一致所以可简写为routes
    //原型为routes:routes
    routes,
    //滚动行为
    scrollBehavior (to, from, savedPosition) {
        return {y:0}
    }
})